package com.huaguoguo.cyg.spider.parse;

import cn.hutool.core.util.ArrayUtil;
import cn.hutool.core.util.StrUtil;
import com.huaguoguo.cyg.entity.tl.to.ServerInfo;
import com.huaguoguo.cyg.exceptions.SpiderParseException;
import lombok.extern.slf4j.Slf4j;

import java.util.Arrays;
import java.util.List;
import java.util.stream.Collectors;

/**
 * 类说明： 天龙网站公共的解析器<br/>
 * author:huaguoguo
 * Date: 2020/2/22
 * Time: 12:13
 */
@Slf4j
public class TLCommonParser {

    /**
     * 解析服务器列表
     * @param srvlistText http抓取到的服务器列表内容
     * @return
     */
    public static List<ServerInfo> parseServerList(String srvlistText){
        String[] srvList = srvlistText.split("\\n");
        if (ArrayUtil.isEmpty(srvList)) {
            throw new SpiderParseException("没有解析到服务器列表！");
        }
        // 解析
        return Arrays.stream(srvList).filter(StrUtil::isNotEmpty)
                .map(s -> s.split(","))
                .filter(strs -> ArrayUtil.isNotEmpty(strs) && strs.length == 3)
                .map(strs -> ServerInfo.builder().serverName(strs[0])
                        .areaName(strs[1]).areaId(Integer.valueOf(strs[2])).build())
                .collect(Collectors.toList());
    }
}
